Issues in Performing and Automating the “Extract Method Calls” Refactoring

نویسندگان

  • Andy Kellens
  • Kris Gybels
چکیده

A large part of converting a pre-AOP application into an aspect-oriented one consists, next to aspect mining, out of aspect refactoring. One such aspect refactoring named “Extract Method Calls” refactoring [11, 17] transforms certain crosscutting concerns which are implemented by calls to a single method into an aspect by turning the called method into an advice and all the calls to that method into a crosscut. In this paper we present the Joinpoint Choice Problem and the Flattened Expression Problem. Both problems are inherent to the joinpoint models as used by current-day weavers and can have a negative impact on the maintainability and evolvability of the crosscuts resulting from performing the “Extract Method Calls” refactoring either by hand or automatically. As a solution to the Joinpoint Choice Problem, we propose an algorithm for calculating the appropriate crosscut. In order to solve the Flattened Expression Problem, we introduce a new language construct named the “statement joinpoint”. In section 2 we describe the “Extract Method Calls” refactoring. Section 3 we present the Joinpoint Choice Problem and Flattened Expression Problem. We discuss solutions for these problems in section 4. After presenting some related work and research directions for the future (section 5),

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Composite Refactorings: The Next Refactoring Rubicons

The industry crossed the first refactoring rubicon, namely Extract Method, more than a decade ago. Today, all mainstream Integrated Development Environments (IDEs) support this refactoring, and empirical studies have shown that Extract Method is one of the most frequently used automated refactorings. Although complex refactorings are more tedious and error-prone, studies have shown that program...

متن کامل

Automating Feature-Oriented Refactoring of Legacy Applications

Creating a software product line from a legacy application is a difficult task. We propose a tool that helps automating tedious tasks of refactoring legacy applications into features and frees the developer from the burden of performing laborious routine implementations.

متن کامل

Object-to-Aspect Refactorings for Feature Extraction

This report describes an experiment in using AspectJ to extract a feature from a Java code base in order to make it unpluggable. We describe issues and obstacles encountered while performing a series of code transformations and next present a collection of manual aspect-oriented refactorings, based on the experience gained in the process. These are described in detail and compounded with a self...

متن کامل

Improving Software Modularity through Crosscutting Concern Extraction

Aspect-oriented programming (AOP) is a programming paradigm for improving the modularity of software systems by localizing crosscutting concerns in the system into aspects. Aspect-oriented refactorings extend AOP to legacy systems, by identifying and encapsulating existing crosscutting concerns through aspect-mining (discovery of crosscutting concerns) and aspect refactoring (semantic-preservin...

متن کامل

Refactoring Tools for Extreme Programming: An Overview

2 Refactoring Research 3 2.1 Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Automating Refactorings . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Automating “Smell Detection” . . . . . . . . . . . . . . . . . . . 6 2.4 Relationship to Extreme Programming . . . . . . . . . . . . . . . 8 2.5 Other Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005